Skip to content

Add SSH host-filter fan-out via dynamic task mapping#179

Merged
timkpaine merged 1 commit into
airflow-laminar:mainfrom
Point72:tkp/multi
Jun 17, 2026
Merged

Add SSH host-filter fan-out via dynamic task mapping#179
timkpaine merged 1 commit into
airflow-laminar:mainfrom
Point72:tkp/multi

Conversation

@timkpaine

Copy link
Copy Markdown
Member

An SSHTask whose ssh_hook is a HostQuery(kind="filter") now fans out across every matching host using Airflow dynamic task mapping, rendered and instantiated as Operator.partial(...).expand(remote_host=[...]).

  • One mapped task with per-host, independently-retryable instances
  • A single base hook supplies shared credentials; only remote_host is mapped, so matching hosts must share username/password/key_file (validated, otherwise a clear error is raised)
  • Opt-in: the default kind="select" single-host behaviour is unchanged
  • Add render/instantiate tests and multi-host balancer fixtures

An SSHTask whose ssh_hook is a HostQuery(kind="filter") now fans out
across every matching host using Airflow dynamic task mapping, rendered
and instantiated as Operator.partial(...).expand(remote_host=[...]).

- One mapped task with per-host, independently-retryable instances
- A single base hook supplies shared credentials; only remote_host is
  mapped, so matching hosts must share username/password/key_file
  (validated, otherwise a clear error is raised)
- Opt-in: the default kind="select" single-host behaviour is unchanged
- Add render/instantiate tests and multi-host balancer fixtures
@codecov

codecov Bot commented Jun 17, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 66.66667% with 19 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
airflow_pydantic/operators/ssh.py 66.66% 14 Missing and 5 partials ⚠️
Files with missing lines Coverage Δ
airflow_pydantic/operators/ssh.py 70.12% <66.66%> (-0.75%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@timkpaine timkpaine marked this pull request as ready for review June 17, 2026 02:33
@timkpaine timkpaine merged commit bc5d815 into airflow-laminar:main Jun 17, 2026
8 of 9 checks passed
@timkpaine timkpaine deleted the tkp/multi branch June 17, 2026 03:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant